/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.sigodonto.view.managedbean;

import br.com.sigodonto.model.dao.DaoGenerico;
import br.com.sigodonto.model.entity.Paciente;
import br.com.sigodonto.model.util.RelatorioUtil;
import br.com.sigodonto.view.datamodel.PacienteDataModel;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author Fidelis
 */
@ManagedBean
@ViewScoped
public class EmitirEtiquetasMB implements Serializable {

    /**
     * Creates a new instance of EmitirEtiquetasMB
     */
    
    private PacienteDataModel pacienteDataModel;
    private DaoGenerico daoGenerico;
    private Paciente[] pacientesSelecionados;
    
    public EmitirEtiquetasMB() {
        this.daoGenerico = new DaoGenerico();
        List<Paciente> pacientes = this.daoGenerico.listarTodos(Paciente.class);
        this.pacienteDataModel = new PacienteDataModel(pacientes);
    }

    public Paciente[] getPacientesSelecionados() {
        return pacientesSelecionados;
    }

    public void setPacientesSelecionados(Paciente[] pacientesSelecionados) {
        this.pacientesSelecionados = pacientesSelecionados;
    }

    public PacienteDataModel getPacienteDataModel() {
        return pacienteDataModel;
    }

    public void setPacienteDataModel(PacienteDataModel pacienteDataModel) {
        this.pacienteDataModel = pacienteDataModel;
    }
    
    public void emitirEtiquetas(){
        FacesMessage message = new FacesMessage();
        String msg = "ETIQUETAS EMITIDAS COM SUCESSO!";
        message.setSeverity(FacesMessage.SEVERITY_INFO);

        if (this.pacientesSelecionados != null && this.pacientesSelecionados.length > 0) {
            HashMap<String, Object> parameterMap = new HashMap<String, Object>();
            String url = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/resources/pacientes/");
            
            parameterMap.put("URL", url);

            List<Paciente> pacientes = new ArrayList<Paciente>();
            
            for (int i = 0; i < pacientesSelecionados.length; i++) {
                Paciente paciente = pacientesSelecionados[i];
                pacientes.add(paciente);
            }

            String relatorio = "etiquetas.jasper";
            RelatorioUtil.gerarRelatorio(relatorio, parameterMap, pacientes);
            
            this.pacientesSelecionados = null;

        } else {
            msg = "SELECIONE OS PACIENTES PARA A EMISSÃO DAS ETIQUETAS!";
            message.setSeverity(FacesMessage.SEVERITY_ERROR);
        }

        message.setSummary(msg);
        FacesContext.getCurrentInstance().addMessage(null, message);
    }
    
}
